﻿using System;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace MyWCFServices.RealRestaurantService
{
    class Program
    {
        static void Main(string[] args)
        {
            Uri baseAddress = new Uri("http://localhost:8080/restaurant.svc");

            using (ServiceHost host = new ServiceHost(typeof(RestaurantService), baseAddress)) // létrehozzuk a szolgáltatás hosztját
            {
                // kapcsolati protokoll (kötés) létrehozása
                BasicHttpBinding binding = new BasicHttpBinding();
                binding.AllowCookies = true;
                binding.CloseTimeout = new TimeSpan(0, 1, 0);
                binding.ReceiveTimeout = new TimeSpan(0, 1, 0);

                // végpont felvétele
                host.AddServiceEndpoint(typeof(IRestaurantService), binding, "");

                // metaadatok közzététele
                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                smb.HttpGetEnabled = true;
                smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
                host.Description.Behaviors.Add(smb);
                host.Open(); // hoszt indítása

                Console.WriteLine("Restaurant Service Started at {0}", baseAddress);
                Console.WriteLine("Press <Enter> to stop the service.");
                Console.ReadLine();

                host.Close(); // hoszt lezárása 
            }
        }
    }
}
